home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / biz / swood / fwcalc.lha / FWCalcAddSpalte.rexx < prev    next >
OS/2 REXX Batch file  |  1997-08-30  |  3KB  |  142 lines

  1. /* $VER: 0.11 , (29.08.1997), © by Thorsten Willert
  2.    
  3.    Macro um Tabellenspalten zu addieren (den Inhalt
  4.    in Zahlen natürlich)
  5.  
  6. -------------------------------------------------
  7. Voreinstellungen:                               */
  8.  
  9. Info = 1
  10.  
  11. /*----------------------------------------------*/
  12.  
  13. ADDRESS = 'FinaW'
  14. OPTIONS CACHE RESULTS
  15.  
  16. STATUS PORTNAME
  17. FW = RESULT
  18. ADDRESS = FW
  19.  
  20. SIGNAL ON BREAK_C
  21. SIGNAL ON HALT
  22. SIGNAL ON SYNTAX
  23.  
  24. /*-----------------------------------------------*/
  25.  
  26. RT.Title = "FWAddSpalte"
  27. RT.Para1 = "rtez_flags = ezreqf_centertext"
  28. RT.Para2 = "rt_pubscrname = FinalWriterPubScreen rtfi_flags = freqf_selectdirs"
  29.  
  30. Copyright = RT.Title || ", © 1997, by Thorsten Willert"
  31.  
  32. R = '0A'X
  33. Zahlen = "1234567890,.-"
  34.  
  35. /*-----------------------------------------------*/
  36.  
  37. IF ~show('L',"rexxreqtools.library") THEN DO
  38.    IF ~addlib('rexxreqtools.library',0,-30,0) THEN DO
  39.       'ShowMessage 1 1 "Fehler ..." "Benötige RexxReqTools.library!" "" "Abbruch !!" "" ""'
  40.       EXIT 20
  41.    END
  42. END
  43.  
  44. IF Info=1 THEN CALL Info
  45.  
  46. ADDRESS (FW)
  47. GETDocItemPrefs Decimal
  48. Punkt = result
  49.  
  50. CALL SetCursor
  51. CALL Addieren
  52.  
  53. /*-----------------------------------------------*/
  54.  
  55. Ende:
  56. EXIT
  57.  
  58. /*-----------------------------------------------*/
  59.  
  60. SetCursor:
  61.  
  62. ADDRESS(FW)
  63. TableGetActiveCell
  64. PARSE VAR RESULT Zeile Spalte
  65.  
  66. TableGetRows
  67. PARSE VAR RESULT Muell Zeilen
  68.  
  69. IF Zeile=1 | Zeile=Zeilen THEN Zeile=2 
  70.  
  71. TableSetAvticeCell Zeile Spalte
  72.  
  73. RETURN
  74.  
  75. /*-----------------------------------------------*/
  76.  
  77. Addieren:
  78.  
  79. ADDRESS (FW)
  80.  
  81. i=1;Summand=0;Summe=0
  82.  
  83. DO FOREVER
  84.     i=i+1
  85.     TableSetActiveCell Zeile Spalte
  86.         SelectAll
  87.         Extract
  88.         Summand=COMPRESS(Result,'09'X'0A'X" ")
  89.         IF ~VERIFY( Summand, Zahlen) ~=0 THEN
  90.             DO
  91.                 Justify Right
  92.                 Summand=TRANSLATE(Summand,".",",")
  93.                 IF Summand = "" THEN Summand = 0
  94.             END
  95.             ELSE Summand=0
  96.  
  97. Summe=Summe+Summand
  98.  
  99. IF Zeile=Zeilen-1 THEN LEAVE
  100. Zeile=Zeile+1
  101.  
  102. END
  103.  
  104. TableSetActiveCell Zeilen Spalte
  105.     SelectAll
  106.     Justify Right
  107.     Clear
  108.     Style Bold
  109.         IF Punkt~="Period" THEN Summe=TRANSLATE(Summe,",",".")
  110.     Type Summe
  111.     
  112. RETURN
  113.  
  114. /*-----------------------------------------------*/
  115.  
  116. Info:
  117.  
  118. rtezrequest(Copyright || R || R ||,
  119.             "Addiert Spalten ab Cursorposition." || R ||,
  120.             "Die erste Zeile wird nie mitaddiert"||R||,
  121.             "und in der letzen steht immer das Ergebnis!","_Aha",RT.Title)
  122.             
  123. RETURN
  124.  
  125. /*-----------------------------------------------*/
  126.  
  127. HALT:
  128. BREAK_C:
  129.  
  130. rtezrequest("Macro wurde abgebrochen ... ","Weiter",RT.Title,RT.Para1)
  131.  
  132. EXIT 10
  133.  
  134. /*-----------------------------------------------*/
  135.  
  136. SYNTAX:
  137.  
  138. IF RC = 47 THEN
  139. rtezrequest("Fehler!","_Weiter|_Hilfe",RT.Title,RT.Para1)
  140. IF rtresult == 0 THEN CALL Info
  141.  
  142. EXIT 10